package com.wanxi.product.util;

import com.wanxi.product.service.api.dto.SkuDto;
import com.wanxi.product.service.api.dto.SpuDto;
import com.wanxi.product.service.api.dto.TagDto;
import com.wanxi.product.service.api.dto.TypeDto;
import com.wanxi.product.service.api.vo.admin.TagAddInVo;
import com.wanxi.product.service.api.vo.admin.TypeAddInVo;
import com.wanxi.product.service.api.vo.enterprise.*;
import com.wanxi.product.service.api.vo.admin.TypeUpdateInVo;

/**
 * Vo转换Dto工具类
 */
public class VoToDto {
    public static SpuDto spuVTD(SpuAddInVo spuVo){
        return SpuDto.builder()
                .spuName(spuVo.getSpuName())
                .typeId(spuVo.getTypeId())
                .enterpriseId(spuVo.getEnterpriseId())
                .img(spuVo.getSpuImg())
                .state(spuVo.getState())
                .content(spuVo.getContent())
                .build();
    }

    public static SpuDto spuVTD(SpuUpdateInVo spuVo){
        return SpuDto.builder()
                .spuId(spuVo.getSpuId())
                .spuName(spuVo.getSpuName())
                .typeId(spuVo.getTypeId())
                .img(spuVo.getSpuImg())
                .state(spuVo.getState())
                .content(spuVo.getDescription())
                .build();
    }

    public static TypeDto typeVTD(TypeAddInVo typeVo){
        return TypeDto.builder()
                .typeName(typeVo.getTypeName())
                .parentId(typeVo.getParentId())
                .img(typeVo.getImg())
                .description(typeVo.getDescription())
                .build();
    }

    public static TypeDto typeVTD(TypeUpdateInVo typeVo){
        return TypeDto.builder()
                .typeId(typeVo.getTypeId())
                .typeName(typeVo.getTypeName())
                .parentId(typeVo.getParentId())
                .img(typeVo.getImg())
                .description(typeVo.getDescription())
                .state(typeVo.getState())
                .build();
    }

    public static SkuDto skuVTD(SkuAddInVo skuAddInVo){
        return SkuDto.builder()
                .skuName(skuAddInVo.getSkuName())
                .img(skuAddInVo.getImg())
                .spuId(skuAddInVo.getSpuId())
                .description(skuAddInVo.getDescription())
                .specifications(skuAddInVo.getSpecifications())
                .marketPrice(skuAddInVo.getMarketPrice())
                .build();
    }

    public static SkuDto skuVTD(SkuUpdateInVo skuUpdateInVo){
        return SkuDto.builder()
                .skuId(skuUpdateInVo.getSkuId())
                .skuName(skuUpdateInVo.getSkuName())
                .img(skuUpdateInVo.getImg())
                .description(skuUpdateInVo.getDescription())
                .specifications(skuUpdateInVo.getSpecifications())
                .marketPrice(skuUpdateInVo.getMarketPrice())
                .build();
    }

    public static TagDto TagVTD(TagAddInVo tagAddInVo) {
        return TagDto.builder()
                .tagName(tagAddInVo.getTagName())
                .build();
    }
}
